Many graphics applications require the user to interactively position graphical objects on the computer screen. This positioning is frequently done with an input device known as a locator device. Examples of such devices include the computer mouse, data tablet, touch panel, 2D joystick, or trackball. These 2D locator devices have only two degrees of freedom, requiring the user to control 2D translations separately from 2D rotations. Unfortunately, this separation of rotation and translation is clumsy and somewhat counter-intuitive for control of object placement.
For example, in a typical CAD/CAM or computer drawing application, it is often necessary not only to position the graphical elements or icons by linear translation but also to rotate the elements or icons for proper presentation on the screen. Present drawing and graphical systems accomplish the translation and rotation of an object or element using two separate input modes. In the first input mode, the object or element is selected by the mouse or other locator, and then translated to a new position by mimicking subsequent movement of the locator device. In the second input mode, the object or element is selected, a center of rotation is established, and movements of the locator device are translated into rotation of the object or element about the selected center of rotation.
An example of one embodiment of rotation of graphical objects is the MacDraw system offered by Apple computer. In this system, the rotational input mode is selected from the appropriate menu and then a mouse click over the graphical element selects the element and automatically determines the center of rotation. This automatic selection of the center of rotation depends on the class of the selected graphical object. The user has little or no control over the location of the center of rotation. Subsequent movement of the mouse results in rotation of the object about this predetermined center of rotation. Another graphical rotation method is embodied in the Adobe PhotoShop system. In this method, one of a set of rotations listed in 10 degree increments is selected from a menu. In another version of this method, also embodied in the Adobe PhotoShop system, rotation angles are selected from an icon depicting arrows or rotation vectors which graphically represent a finite list of possible rotation angles.
It will be appreciated that all of the above mentioned schemes for placement of a graphical element require separate control of rotation and translation. Hence they are extremely cumbersome for drawing and design applications and completely impractical for applications which require real-time, interactive control of object or viewpoint placement.
More particularly, a computer mouse has a sensor which detects either absolute position (x, y) or position displacement (.DELTA.x, .DELTA.y). The detected position or displacement is input to the computer and can be used to control the location of a graphical object on the computer screen. Sensors of position or displacement can be: optical, detecting light reflected from a patterned mouse pad; mechanical, detecting movement of the mouse using encoders on a roller on the base of the mouse; or electromagnetic, sensing absolute position over a grid of active wires embedded in a tablet.
Prior locator devices detect 2D position or displacement of the mouse with a single sensor, or a single sensor system, that records either the position pair, (x, y), or the displacement pair, (.DELTA.x, .DELTA.y). Rotation of the mouse about the sensor is not detected. Because the sensor monitors only 2 variables, x and y, or .DELTA.x and .DELTA.y, prior systems have only 2 degrees of freedom and are incapable of simultaneous control of position and orientation of graphical elements. Instead, conventional locator devices require that position and orientation of graphical objects be separately controlled. This is typically done by having two separate input modes for the locator device. In the first mode, mouse movements are interpreted as object translations. In the second mode, the mouse movements are converted into rotation about a pre-selected origin, which can either be implicit or set explicitly by the user. Switching between these modes can be relatively clumsy and can not be done quickly enough for real-time applications.